package com.pai4j.common.config.configuration;
import com.pai4j.common.config.properties.MinioProperties;
import io.minio.MinioClient;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MinioConfig {

    @Resource
    private MinioProperties properties;

    /**
     * 配置并创建MinioClient实例
     *
     * 该方法使用Spring的@Bean注解来定义一个bean，确保MinioClient实例在应用程序上下文中可用
     * 它根据配置属性构建一个MinioClient对象，用于与Minio服务器进行交互
     *
     * @return MinioClient实例，用于连接和操作Minio服务器
     */
    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(properties.getEndpoint())
                .credentials(properties.getAccessKey(), properties.getSecretKey())
                .build();
    }
}